

package com.hazelcast.map.impl.operation;

import com.hazelcast.map.impl.MapContainer;
import com.hazelcast.nio.ObjectDataInput;
import com.hazelcast.nio.ObjectDataOutput;

import java.io.IOException;

/**
 * Used when no serialization of {@link MapOperation} is desired.
 *
 * @see com.hazelcast.spi.impl.operationservice.AbstractLocalOperation
 */
abstract class AbstractMapLocalOperation extends MapOperation {

    AbstractMapLocalOperation() {
    }

    AbstractMapLocalOperation(String name) {
        super(name);
    }

    AbstractMapLocalOperation(MapContainer mapContainer) {
        super(mapContainer);
    }

    @Override
    protected void writeInternal(ObjectDataOutput out) throws IOException {
        throw new UnsupportedOperationException(getClass().getName() + " is only used locally!");
    }

    @Override
    protected void readInternal(ObjectDataInput in) throws IOException {
        throw new UnsupportedOperationException(getClass().getName() + " is only used locally!");
    }

    @Override
    public int getFactoryId() {
        throw new UnsupportedOperationException(getClass().getName() + " is only used locally!");
    }

    @Override
    public int getClassId() {
        throw new UnsupportedOperationException(getClass().getName() + " is only used locally!");
    }
}
